﻿using System;
using System.Collections.Generic;
using System.Text;

namespace AlgorithmTest
{
    public class T_0005_PushOne
    {
        // 加一

        // 给定一个由 整数 组成的 非空 数组所表示的非负整数，在该数的基础上加一。
        // 最高位数字存放在数组的首位， 数组中每个元素只存储单个数字。
        // 你可以假设除了整数 0 之外，这个整数不会以零开头。

        public void Test()
        {
            var digits = new int[] { 9 };
            var newIntArray = PushOne(digits);

            foreach (var item in newIntArray)
            {
                Console.Write(item);
            }
            Console.Read();
        }

        public int[] PushOne(int[] digits)
        {
            for (int i = digits.Length - 1; i >= 0; i--)
            {
                if (digits[i] == 9)
                {
                    digits[i] = 0;
                }
                else
                {
                    digits[i]++;
                    return digits;
                }
            }
            int[] temp = new int[digits.Length + 1];
            temp[0] = 1;
            return temp;
        }
    }
}
